From 6209471c3cd925fd33eeb15e7df70bf031a61229 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Fri, 22 Oct 2010 15:14:51 +0100 Subject: [PATCH] libxc: convert flask interfaces over to hypercall buffers Signed-off-by: Ian Campbell Signed-off-by: Ian Jackson --- tools/libxc/xc_flask.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/libxc/xc_flask.c b/tools/libxc/xc_flask.c index 621967f496..27794a82d5 100644 --- a/tools/libxc/xc_flask.c +++ b/tools/libxc/xc_flask.c @@ -40,23 +40,24 @@ int xc_flask_op(xc_interface *xch, flask_op_t *op) { int ret = -1; DECLARE_HYPERCALL; + DECLARE_HYPERCALL_BOUNCE(op, sizeof(*op), XC_HYPERCALL_BUFFER_BOUNCE_BOTH); - hypercall.op = __HYPERVISOR_xsm_op; - hypercall.arg[0] = (unsigned long)op; - - if ( lock_pages(xch, op, sizeof(*op)) != 0 ) + if ( xc_hypercall_bounce_pre(xch, op) ) { - PERROR("Could not lock memory for Xen hypercall"); + PERROR("Could not bounce memory for flask op hypercall"); goto out; } + hypercall.op = __HYPERVISOR_xsm_op; + hypercall.arg[0] = HYPERCALL_BUFFER_AS_ARG(op); + if ( (ret = do_xen_hypercall(xch, &hypercall)) < 0 ) { if ( errno == EACCES ) fprintf(stderr, "XSM operation failed!\n"); } - unlock_pages(xch, op, sizeof(*op)); + xc_hypercall_bounce_post(xch, op); out: return ret; -- 2.30.2